package cg.cmm.redis.annotation;

import java.lang.annotation.*;

/**
 * 通过注释实现redis锁
 *
 * @author yingxli
 */
@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Inherited
@Documented
public @interface RedisLock {
    /**
     * 固定lock key
     *
     * @return default black.
     */
    String value() default "";

    /**
     * 动态lock key，通过spel表达式实现，与方法参数相结合, 如果既配置了[value]参数，又配置了该参数，value参数会被expression覆盖。
     *
     * @return default blank。
     */
    String expression() default "";
}
